
#ifndef __INI_H
#define __INI_H

#define INI_VERSION "0.1.1"

typedef struct  {
  int seq;
  char name[16];
  char type[16];
  char unit[16];
  int val;
  int coeff_retention;
}Ini_Para_TypeDef;


typedef struct  {
  char *data;
  char *end;
  Ini_Para_TypeDef para; 
}Ini_TypeDef;


// typedef struct ini_t ini_t;

Ini_TypeDef*      ini_load(const char *filename);
void        ini_free(Ini_TypeDef *ini);
const char* ini_get(Ini_TypeDef *ini, const char *section, const char *key);
int         ini_sget(Ini_TypeDef *ini, const char *section, const char *key, const char *scanfmt, void *dst);

void ini_get_struct(Ini_TypeDef *ini, const char *section, const char *key );

void ini_print_struct(Ini_TypeDef *ini );
void ini_print_data(Ini_TypeDef *ini );
/* 写到文件再读出 */
void ini_insert_struct(Ini_TypeDef *ini, const char *section, const char *key ,int start, int end);

void ini_modify_struct_from_ui(Ini_TypeDef *ini, const char *seq, const char *name
  ,const char *type, const char *unit, const char *val, const char *coeff_retention);

#endif